package com.eclipse.e20200205_集合.TreeSet;

import java.util.TreeSet;

class Person implements Comparable<Person>{
	String name;
	int age;
	Person(String name,int age){
		this.name = name;
		this.age = age;
	}
	
	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + "]";
	}
	
	@Override
	//如果返回0   只添加第一个元素
	//如果是一个正数，都能添加到集合当中，顺序是怎么添加的，怎么显示
	//如果是一个负数，都能添加到集合当中 ，显示是，是倒序显示（第一个添加的，显示到最后）
	
	public int compareTo(Person obj) {
		
		int num = this.age - obj.age;//比age    比name
		/*
		if(num == 0) {
			return this.name.compareTo(obj.name);
		}else {
			return num;
		}
		*/
		return num == 0 ? this.name.compareTo(obj.name) : num;
	}
}

public class 自定义类型排序 {
	public static void main(String[] args) {
		
		//TreeSet当中存放的类型必须得是同一类型
		//TreeSet set = new TreeSet();
		//set.add(10);
		//set.add("a");		
		
		//自定义的对象不能直接添加到TreeSet
		//想要添加到TreeSet当中必须得要遵守一定的规则
		//实现Comparable接口
		//覆盖当中 的一个方法  compareTo
		TreeSet<Person> set = new TreeSet<>();
		set.add(new Person("张三",20));
		set.add(new Person("李四",25));
		set.add(new Person("王五",22));
		set.add(new Person("赵六",21));
		set.add(new Person("赵六1",20));
		System.out.println(set);
	}
}
